package com.gitee.magic.jdbc.persistence.source.jdbc.script.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.gitee.magic.jdbc.persistence.source.jdbc.script.annotations.enums.EngineType;

/**
 * Mysql表结构定义
 * @author start
 *
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface TableDef {
	
	/**
	 * 表类型
	 * @return
	 */
	EngineType engine() default EngineType.InnoDB;
	
	/**
	 * 字符集 utf8、utf8mb4
	 * @return
	 */
	String charset() default "utf8mb4";
	
	/**
	 * 排序规则 utf8_general_ci、utf8mb4_bin
	 * @return
	 */
	String collate() default "utf8mb4_bin";
	
	/**
	 * 注释
	 * @return
	 */
	String comment();
	
	/**
	 * 是否跳过表生成语句定义
	 * @return
	 */
	boolean skip() default false;
	
	/**
	 * 联合索引配置
	 * @return
	 */
	IndexesUnion indexes() default @IndexesUnion();
	
}
